package com.zhyonk.service;

import com.zhyonk.domain.StarUser;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public interface FaceService {

    void payFor(String someThings);

    /**
     * 人脸检测
     * @param options       参数
     * @param image         图片信息(总数据大小应小于10M)，图片上传方式根据image_type来判断
     * @param imageType     图片类型
 *                      BASE64:图片的base64值，base64编码后的图片数据，编码后的图片大小不超过2M；
 *                      URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长)；
     * @return
     */
    org.json.JSONObject checkFace(HashMap<String,String> options, String image, String imageType);


    /**
     *
     * @param options       参数
     * @param image         图片信息(总数据大小应小于10M)，图片上传方式根据image_type来判断
     * @param imageType     图片类型
     *                      BASE64:图片的base64值，base64编码后的图片数据，编码后的图片大小不超过2M；
     *                      URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长)；
     *                      FACE_TOKEN: 人脸图片的唯一标识，调用人脸检测接口时，会为每个人脸图片赋予一个唯一的FACE_TOKEN，同一张图片多次检测得到的FACE_TOKEN是同一个。
     * @param groupIdList   从指定的group中进行查找 用逗号分隔，上限20个
     */
    JSONObject searchFace(HashMap<String,String> options,String image,String imageType,String groupIdList);

    /**
     *
     * @param options       参数
     * @param image         图片信息(总数据大小应小于10M)，图片上传方式根据image_type来判断
     * @param imageType     图片类型
     *                      BASE64:图片的base64值，base64编码后的图片数据，编码后的图片大小不超过2M；
     *                      URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长)；
     *                      FACE_TOKEN: 人脸图片的唯一标识，调用人脸检测接口时，会为每个人脸图片赋予一个唯一的FACE_TOKEN，同一张图片多次检测得到的FACE_TOKEN是同一个。
     * @param groupIdList   从指定的group中进行查找 用逗号分隔，上限20个
     */
    JSONObject multiSearchFace(HashMap<String,String> options,String image,String imageType,String groupIdList);

    /**
     *
     * @param options       参数
     * @param image         图片信息(总数据大小应小于10M)，图片上传方式根据image_type来判断
     * @param imageType     图片类型
     *                      BASE64:图片的base64值，base64编码后的图片数据，编码后的图片大小不超过2M；
     *                      URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长)；
     *                      FACE_TOKEN: 人脸图片的唯一标识，调用人脸检测接口时，会为每个人脸图片赋予一个唯一的FACE_TOKEN，同一张图片多次检测得到的FACE_TOKEN是同一个。
     * @param groupId       从指定的group中进行查找 用逗号分隔，上限20个
     * @param userId         用户Id
     */
    JSONObject addUser(HashMap<String,String> options,String image,String imageType,String groupId,String userId);

    /**
     * 填充数据库中的用户信息
     */
    void fillUser();



    void registerAllUserToBaidu();

    void deleteFace();

    int containFaceCount(String base64);

    /**
     * 黑白图片上色
     * @param base64
     * @return
     */
    JSONObject colourize(String base64);

    StarUser queryStarFace(String base64);

    Map<String, Object> fillFieldEntity(Object obj, HashMap<String, String> needFields);
}
